<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            min-height: 100vh;
            background-color: #abefe9;
            text-align: center;
        }

        .main {
            margin: 5px;
            border: #bfc 3px solid;
            background-color: #FFCCCC;
            width: 100%;
            height: 300px;
            overflow: auto;
        }

        hr {
            background-color: red;
            height: 1px;
            border: 0;
        }

        .main>div {
            border: #000 1px solid;

        }

        .d1-0 {
            width: 100px;
            height: 100px;
            background-color: #ccf;
            float: left;
        }

        .d1-1 {
            width: 200px;
            height: 200px;
            background-color: #cfc;
            float: none;
        }

        .d1-2 {
            width: 100px;
            height: 100px;
            background-color: #ccf;
            float: right;
        }

        .d2-1 {
            width: 70%;
            height: 200px;
            background-color: #cfc;
            float: left;
        }

        .d2-2 {
            width: 20%;
            height: 100px;
            background-color: #ccf;
            float: right;
        }
    </style>
</head>

<body>
    <!-- 
        float会是元素向父元素的左/右上浮动，
        但如果上方有块元素，则不会超过该块元素。
        如果多个浮动元素在一行内容不下，则会自动换行
     -->
    <!-- 浮动元素不用回盖住底下的文字
    文字会自动环绕在浮动元素周围 -->
    <div class="main">
        <div class="d1-0">
            float: left;
            <hr>0号
        </div>
        <div class="d1-0">
            float: left;
            <hr>1号
        </div>
        <div class="d1-0">
            float: left;
            <hr>2号
        </div>

        <div class="d1-1">
            float: none;
            <hr>0号
        </div>

        <div class="d1-2">
            float: right;
            <hr>0号
        </div>
        <div class="d1-2">
            float: right;
            <hr>1号
        </div>
        <div class="d1-2">
            float: right;
            <hr>2号
        </div>

        <div class="d1-1">
            float: none;
            <hr>1号
        </div>
    </div>
    <!-- 浮动的元素不会超过前面的兄弟元素 -->
    <div class="main">
        <div class="d2-1">
            float: left;
        </div>
        <div class="d2-1">
            float: left;
        </div>
        <div class="d2-2">
            float: right;
        </div>
    </div>
    <hr>
    <div style="height: 50px;background-color: #cfc;">
        在文档流中的元素，子元素会默认占据父元素的全部
    </div>
    <br>
    <div style="height: 50px;background-color: #cfc;float: left;">
        float脱离文档流后，大小由内容决定
    </div>

    <span class="d1-0">
        内联元素脱离文档流后会变成块元素
    </span>
</body>

</html>